#include <iostream>
#include <algorithm>
#include <string>

enum class Job { Eng, Doc, Teach };
enum class Wp { Off, Hosp, Sch };
class CSU {
public:
    double calculateExperienceCoeff(int years) {
        if (years <= 0) return 1.0; // Минимальный коэффициент
        if (years <= 5) return 1.0 + years * 0.05; // 5% за каждый год до 5 лет
        if (years <= 10) return 1.25 + (years - 5) * 0.03; // 3% за каждый год после 5 лет
        return 1.4 + (years - 10) * 0.02; // 2% за каждый год после 10 лет
}

    double calcSal(Job j, double exp, Wp w, bool mgr, int subs) {
        double base = 0.0;
    
        switch(j) {
            case Job::Eng: base = (w == Wp::Off) ? 50000 : 45000; break;
            case Job::Doc: base = (w == Wp::Hosp) ? 70000 : 60000; break;
            case Job::Teach: base = (w == Wp::Sch) ? 40000 : 35000; break;
        }
    
        double sal = base * exp;
        if(mgr) sal += std::min(0.1 * subs, 0.5) * base;
    
        return sal;
    }
};
int main() {
    int choice;
    double exp;
    bool isMgr;
    int subs = 0;
    double Cfp; 
    int years;
    CSU csu;
    std::cout << "Выберите профессию:\n1. Инженер\n2. Врач\n3. Учитель\n";
    std::cin >> choice;
    Job job = static_cast<Job>(choice - 1);

    std::cout << "Выберите место работы:\n1. Офис\n2. Больница\n3. Школа\n";
    std::cin >> choice;
    Wp workplace = static_cast<Wp>(choice - 1);

    std::cout << "Введите стаж в годах: ";
    std::cin >> years;
    
    double coeff = csu.calculateExperienceCoeff(years);
    std::cout << "Коэффициент стажа: " << coeff << "\n";

    std::cout << "Являетесь ли вы руководителем? (1 - да, 0 - нет): ";
    std::cin >> isMgr;
    if(isMgr) {
        std::cout << "Введите количество подчиненных: ";
        std::cin >> subs;
    }

    double salary = csu.calcSal(job, coeff, workplace, isMgr, subs);
    std::cout << "\nРасчетная зарплата: " << salary << std::endl;

    return 0;
}
